home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / comms / other / slrn / slrn_src / macros / tin-group.sl < prev    next >
Text File  |  1999-05-14  |  2KB  |  79 lines

  1. % The macros here provide some tin-like keybindings for GROUP mode.
  2.  
  3. % The following macros depend on the util.sl macros being loaded.
  4. % In your .slrnrc file, add the following lines:
  5. %    interpret "util.sl"
  6. %    interpret "tin-group.sl"
  7. %    interpret "tin-art.sl"
  8.  
  9.  
  10. % The easy bindings
  11. definekey ("toggle_list_all", "y", "group");        % yank in/out
  12. definekey ("toggle_hidden", "r", "group");        % toggle all/unread
  13. definekey ("post", "w", "group");
  14.  
  15. % TAB key in group mode.  Apparantly this moves from one unread group to
  16. % another and then cycles back to the top.
  17. define tin_group_next_unread ()
  18. {
  19.    USER_BLOCK0
  20.      {
  21.     if (group_unread ())
  22.       {
  23.          if (-1 != select_group ())
  24.            return;
  25.       }
  26.      }
  27.    
  28.    while (group_down_n (1)) X_USER_BLOCK0 ();
  29.    
  30.    group_bob ();
  31.    do X_USER_BLOCK0 (); while (group_down_n (1));
  32.    
  33.    error ("No more unread groups.");
  34. }
  35. definekey ("tin_group_next_unread", "\t", "group");
  36.    
  37.  
  38. % Using UP/DOWN arrow keys in group mode causes a wrap at 
  39. % ends of the buffer.
  40. define tin_group_up ()
  41. {
  42.    !if (group_up_n (1))
  43.      group_eob ();
  44. }
  45.  
  46. define tin_group_down ()
  47. {
  48.    !if (group_down_n (1))
  49.      group_bob ();
  50. }
  51.  
  52. #ifndef OS2
  53. definekey ("tin_group_up", "\e[A", "group");
  54. definekey ("tin_group_up", "\eOA", "group");
  55. definekey ("tin_group_up", "^(ku)", "group");
  56. definekey ("tin_group_down", "\e[B", "group");
  57. definekey ("tin_group_down", "\eOB", "group");
  58. definekey ("tin_group_down", "^(kd)", "group");
  59.  
  60. % Left/right arrow keys
  61. definekey ("quit", "\e[D", "group");
  62. definekey ("quit", "\eOD", "group");
  63. definekey ("quit", "^(kl)", "group");
  64. definekey ("select_group", "\e[C", "group");
  65. definekey ("select_group", "\eOC", "group");
  66. definekey ("select_group", "^(kr)", "group");
  67.  
  68. #else  
  69. % OS/2
  70. definekey ("tin_group_up", "\xE0H", "group");
  71. definekey ("tin_group_down", "\xE0P", "group");
  72. definekey ("quit", "\xE0K", "group");
  73. definekey ("select_group", "\xE0M", "group");
  74. #endif
  75.  
  76. % Also j,k should be bound to these functions
  77. definekey ("tin_group_up", "k", "group");
  78. definekey ("tin_group_down", "j", "group");
  79.